package com.example.spring_musicserver_1113.tools;

import org.apache.commons.codec.digest.DigestUtils;

/**
 * @version 1.0
 * @Author 作者名
 * @Date 2024/11/14 10:19
 * @注释
 */
public class MD5Util {
    //定义⼀个固定的盐值

    private static final String salt = "1b2i3t4e";
    //进行加密的成员方法
    public static String md5(String src) {
        return DigestUtils.md5Hex(src);
    }

 //第⼀次加密：模拟前端⾃⼰加密，然后传到后端
    public static String inputPassToFormPass(String inputPass) {
        String str = ""+salt.charAt(1)+salt.charAt(3) + inputPass
        +salt.charAt(5) + salt.charAt(6);
        return md5(str);
    }
    /**
    *第2次MD5加密前端加密过的密码，传给后端进⾏第2次加密
     ⽤⼾数据库当中的盐值
      * @return
      */
    public static String formPassToDBPass(String formPass, String salt) {
        String str = ""+salt.charAt(0)+salt.charAt(2) + formPass
                    +salt.charAt(5) + salt.charAt(4);
        return md5(str);
    }
    /**
     *
     上⾯两个函数合到⼀起进⾏调⽤
     * @param inputPass
     * @param saltDB
     * @return
     */
    public static String inputPassToDbPass(String inputPass, String saltDB) {
        String formPass = inputPassToFormPass(inputPass);
        String dbPass = formPassToDBPass(formPass, saltDB);
        return dbPass;
    }
    public static void main(String[] args) {
        System.out.println(" 对⽤⼾输⼊密码进⾏第1次加密： "+inputPassToFormPass("123456"));
                System.out.println(" 对⽤⼾输⼊密码进⾏第2次加密："+
                        formPassToDBPass(inputPassToFormPass("123456"),
                        "1b2i3t4e"));
        System.out.println(" 对⽤⼾输⼊密码进⾏第2 次加 密： "+
                inputPassToDbPass("123456", "1b2i3t4e"));
    }
}
